import Foundation


public struct HammerKingWrapper<Element> {
    internal let element: Element
    public init(element: Element) {
        self.element = element
    }
}

public protocol HammerKingObject: AnyObject {}

public extension HammerKingObject {
    var hk: HammerKingWrapper<Self> {
        HammerKingWrapper(element: self)
    }
}


#if os(iOS)
import UIKit
//
public typealias DownloadProgressBlock  = ((_ receivedSize: Int64, _ totalSize: Int64,_ receivedData: Data) -> Void)
public typealias VoidBlock              = (() -> Void)
//
//public typealias HKImageView    = UIImageView
//public typealias HKImage        = UIImage
//public typealias HKView         = UIView
//public typealias HKLabel        = UILabel
//public typealias HKString       = String
//
//extension HKImageView: HammerKingObject {}
//extension HKImage: HammerKingObject {}
//extension HKView: HammerKingObject {}
//extension HKLabel: HammerKingObject {}
//extension HKString: HammerKingObject {}
//
public let HKBundleId           = Bundle.main.bundleIdentifier
public let HKVersion            = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String
public let HKBuildVersion       = Bundle.main.infoDictionary?["CFBundleVersion"] as? String


#endif
//

